package com.fjb.pojo.bill;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;

/**
 * <p>
 * 用户账单表
 * </p>
 *
 * @author hemiao
 * @since 2020-02-08
 */
public class SysUserBillInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 主账号id
     */
    private Integer mainUserId;

    /**
     * 用户id
     */
    private Integer userId;

    /**
     * 账单分类id  关联分类表
     */
    private Integer billCategoryId;

    /**
     * 账单类型          1、收入   2、支出  3、提现
     */
    private Integer billType;

    /**
     * 业务id    可能是多个  多个 逗号分隔
     */
    private String businessIds;

    /**
     * 商户订单号  系统生成
     */
    private String outTradeNo;

    /**
     * 第三方交易号(支付宝 或者微信)
     */
    private String tradeNo;

    /**
     * 订单金额
     */
    private BigDecimal totalAmount;

    /**
     * 实际付款金额   订单金额  减去  优惠  等于 实际付款的
     */
    private BigDecimal payAmount;

    /**
     * 优惠金额  
     */
    private BigDecimal discountAmount;

    /**
     * 商品标题
     */
    private String billSubject;

    /**
     * 商品描述
     */
    private String billBody;

    /**
     * 业务类型	1000 购买产品  2000 提现  3000 账户充值
     */
    private Integer businessType;

    private LocalDateTime createTime;

    private Integer createUserId;

    /**
     * 支付时间
     */
    private LocalDateTime paymentTime;

    /**
     * 接口名称
     */
    private String payControllerName;

    /**
     * 支付方式 alipay、支付宝    wechat、微信  
     */
    private String payMethod;

    /**
     * 订单状态        1、已完成  2、已取消  3、待付款 4、付款失败	
     */
    private Integer payStatus;

    /**
     * 交易状态   
     */
    private String tradeStatus;

    /**
     * 支付网关	
     */
    private String payGatewayUrl;

    private String appId;

    /**
     * 付款人   买家用户号
     */
    private String buyerId;

    /**
     * 收款人  卖家用户号
     */
    private String sellerId;

    private String remark;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getMainUserId() {
        return mainUserId;
    }

    public void setMainUserId(Integer mainUserId) {
        this.mainUserId = mainUserId;
    }
    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }
    public Integer getBillCategoryId() {
        return billCategoryId;
    }

    public void setBillCategoryId(Integer billCategoryId) {
        this.billCategoryId = billCategoryId;
    }
    public Integer getBillType() {
        return billType;
    }

    public void setBillType(Integer billType) {
        this.billType = billType;
    }
    public String getBusinessIds() {
        return businessIds;
    }

    public void setBusinessIds(String businessIds) {
        this.businessIds = businessIds;
    }
    public String getOutTradeNo() {
        return outTradeNo;
    }

    public void setOutTradeNo(String outTradeNo) {
        this.outTradeNo = outTradeNo;
    }
    public String getTradeNo() {
        return tradeNo;
    }

    public void setTradeNo(String tradeNo) {
        this.tradeNo = tradeNo;
    }
    public BigDecimal getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(BigDecimal totalAmount) {
        this.totalAmount = totalAmount;
    }
    public BigDecimal getPayAmount() {
        return payAmount;
    }

    public void setPayAmount(BigDecimal payAmount) {
        this.payAmount = payAmount;
    }
    public BigDecimal getDiscountAmount() {
        return discountAmount;
    }

    public void setDiscountAmount(BigDecimal discountAmount) {
        this.discountAmount = discountAmount;
    }
    public String getBillSubject() {
        return billSubject;
    }

    public void setBillSubject(String billSubject) {
        this.billSubject = billSubject;
    }
    public String getBillBody() {
        return billBody;
    }

    public void setBillBody(String billBody) {
        this.billBody = billBody;
    }
    public Integer getBusinessType() {
        return businessType;
    }

    public void setBusinessType(Integer businessType) {
        this.businessType = businessType;
    }
    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }
    public Integer getCreateUserId() {
        return createUserId;
    }

    public void setCreateUserId(Integer createUserId) {
        this.createUserId = createUserId;
    }
    public LocalDateTime getPaymentTime() {
        return paymentTime;
    }

    public void setPaymentTime(LocalDateTime paymentTime) {
        this.paymentTime = paymentTime;
    }
    public String getPayControllerName() {
        return payControllerName;
    }

    public void setPayControllerName(String payControllerName) {
        this.payControllerName = payControllerName;
    }
    public String getPayMethod() {
        return payMethod;
    }

    public void setPayMethod(String payMethod) {
        this.payMethod = payMethod;
    }
    public Integer getPayStatus() {
        return payStatus;
    }

    public void setPayStatus(Integer payStatus) {
        this.payStatus = payStatus;
    }
    public String getTradeStatus() {
        return tradeStatus;
    }

    public void setTradeStatus(String tradeStatus) {
        this.tradeStatus = tradeStatus;
    }
    public String getPayGatewayUrl() {
        return payGatewayUrl;
    }

    public void setPayGatewayUrl(String payGatewayUrl) {
        this.payGatewayUrl = payGatewayUrl;
    }
    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }
    public String getBuyerId() {
        return buyerId;
    }

    public void setBuyerId(String buyerId) {
        this.buyerId = buyerId;
    }
    public String getSellerId() {
        return sellerId;
    }

    public void setSellerId(String sellerId) {
        this.sellerId = sellerId;
    }
    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    @Override
    public String toString() {
        return "SysUserBillInfo{" +
        "id=" + id +
        ", mainUserId=" + mainUserId +
        ", userId=" + userId +
        ", billCategoryId=" + billCategoryId +
        ", billType=" + billType +
        ", businessIds=" + businessIds +
        ", outTradeNo=" + outTradeNo +
        ", tradeNo=" + tradeNo +
        ", totalAmount=" + totalAmount +
        ", payAmount=" + payAmount +
        ", discountAmount=" + discountAmount +
        ", billSubject=" + billSubject +
        ", billBody=" + billBody +
        ", businessType=" + businessType +
        ", createTime=" + createTime +
        ", createUserId=" + createUserId +
        ", paymentTime=" + paymentTime +
        ", payControllerName=" + payControllerName +
        ", payMethod=" + payMethod +
        ", payStatus=" + payStatus +
        ", tradeStatus=" + tradeStatus +
        ", payGatewayUrl=" + payGatewayUrl +
        ", appId=" + appId +
        ", buyerId=" + buyerId +
        ", sellerId=" + sellerId +
        ", remark=" + remark +
        "}";
    }
}
